package com.sun.designpatternsdemo.factory.bean.gcff

import com.sun.designpatternsdemo.factory.bean.jdgc.Roujiamo


/**
 * 版权：xx公司 版权所有
 * @author sun
 * 版本：1.0
 * 创建日期：2021/6/29 10:47
 * 描述：
 *
 */
class XianRoujiamoStaore(val factory: XianSimpleRoujiamoFactory): RoujiaMoStore() {
    override fun sellRoujiamo(type: String): Roujiamo {
        return factory.createRoujiamo(type).apply {
            prepare()
            fire()
            pack()
        }

    }
}

class XianSimpleRoujiamoFactory{
    fun createRoujiamo(type: String): Roujiamo {
        return when (type) {
            "suan" -> XianSuanRoujiMo()
            "la" -> XianlaRoujiMo()
            "tian" -> XianKuRoujiMo()
            else -> XianSuanRoujiMo()//默认酸味
        }
    }
}

abstract class RoujiaMoStore{
    abstract fun sellRoujiamo(type:String): Roujiamo
}

class XianlaRoujiMo : Roujiamo() {
    init {
        this.name = "西安 辣肉夹馍"
    }
}
class XianKuRoujiMo : Roujiamo() {
    init {
        this.name = "西安 苦肉夹馍"
    }
}
class XianSuanRoujiMo : Roujiamo() {
    init {
        this.name = "西安 酸肉夹馍"
    }
}